home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / advancec.arc / EVENT.C < prev    next >
Text File  |  1992-01-24  |  2KB  |  101 lines

  1. /*
  2.     event.c
  3.  
  4.     event manager routines and variables
  5. */
  6.  
  7. /*
  8.     #include system-dependent header files here
  9. */
  10.  
  11. #include "usrif.h"
  12. #undef   NULL
  13. #include "ctype.h"
  14. #include "stdio.h"
  15.  
  16. /* cursor record */
  17. extern  point_t cursor;
  18.  
  19. /* keyboard lookup table */
  20. char    key_map[256];
  21.  
  22. extern  rect_t  screen;
  23.  
  24. /* the event record */
  25. event_t the_event;
  26.  
  27. /*
  28.     initialize event manager
  29. */
  30.  
  31. void    init_event()
  32. {
  33. int i;
  34.  
  35.     /* initial cursor position */
  36.     cursor.x = cursor.y = 0;
  37.  
  38.     /* default ascii keyboard lookup table */
  39.     for(i=0;i<256;i++)
  40.         if(isascii(i))
  41.             key_map[i] = (char) i;
  42.         else
  43.             key_map[i] = '\0';
  44.  
  45.     /* initialize system-dependent event managers here */
  46. }
  47.  
  48. event_t *get_next_event()
  49. {
  50. point_t where;
  51. int     data;
  52.  
  53.     /* get system event */
  54.  
  55.     switch(type)    /* What type of event was it? */
  56.         {
  57.         case   /* no event */   :
  58.  
  59.             the_event.what = NULL_EVENT;
  60.             break;
  61.  
  62.         case    /* button event */    :
  63.  
  64.             /* down button? */
  65.                the_event.what = DN_BUTTON_EVENT;
  66.  
  67.             /* up button? */
  68.                the_event.what = UP_BUTTON_EVENT;
  69.  
  70.             break;
  71.  
  72.         case    /* pointer moved */   :
  73.  
  74.             where.x = /* pointer x location */
  75.             where.y = /* pointer y location */
  76.             set_cursor( &where);
  77.  
  78.             /* movement of pointer is not event */
  79.             the_event.what = NULL_EVENT;
  80.             break;
  81.  
  82.         case    /* key was pressed */ :
  83.  
  84.             /* keyboard key is in data */
  85.  
  86.             the_event.stroke = key_map[data];
  87.             the_event.what = KEY_EVENT;
  88.  
  89.             if(data == ABORT_KEY)
  90.                 the_event.what = ABORT_EVENT;
  91.  
  92.             break;
  93.         }
  94.  
  95.     /* set up the event record */
  96.     the_event.where.x = cursor.x;
  97.     the_event.where.y = cursor.y;
  98.  
  99.     return( &the_event );
  100. }
  101.